package com.szwistar.common.comm;

public interface AsyncCommand extends AsyncFrame {
	/**
	 * 设置本消息的发送者
	 */
	public void setSender(AsyncTranceiver sender);

	/**
	 * 获取本消息的发送者
	 */
	public AsyncTranceiver getSender();

	/**
	 * 设置此指令需要重发的次数
	 */
	public void setResendCount(int resendCount);
	public int getResendCount();

	/**
	 * 获取已经发送的次数
	 */
	public int getResentCount();
	public int increaseResentCount();

	/**
	 * 设置此指令的响应帧最长的等待时间，<=0表示没有响应帧或不需要等待响应
	 */
	public void setResendInterval(int resendInterval);
	public int getResendInterval();

	/**
	 * 匹配对应的响应帧
	 */
	public boolean matchResponse(Object message);
}
